// 必须设计出这样的函数
function executionCode(successCallback, failCallback) {
  try {
    // throw new Error('故意报个错');
    setTimeout(() => {
      console.log('1');
      setTimeout(() => {
        console.log('2');
        successCallback();
      }, 0);
    }, 0);
  } catch {
    failCallback();
  }
}

executionCode(
  () => {
    console.log('通过回调函数监听异步代码执行结束');
  },
  () => {
    console.log('捕获错误的回调函数');
  }
);
